package com.example.tms.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.tms.entity.EmployeePerformance;
import com.example.tms.mapper.EmployeePerformanceMapper;
/**
 * 员工绩效服务
 * 提供员工绩效记录的业务逻辑处理
 */
@Service
public class EmployeePerformanceService {

    @Autowired
    private EmployeePerformanceMapper employeePerformanceMapper;
    // 获取所有员工绩效列表
    /**
     * 获取所有员工绩效记录
     * @return 员工绩效记录列表
     */
    public List<EmployeePerformance> selectAll() {
        return employeePerformanceMapper.selectList(null);
    }

    // 根据 ID 查询员工绩效
    /**
     * 根据ID查询员工绩效记录
     * @param id 绩效记录ID
     * @return 绩效记录详情
     */
    public EmployeePerformance selectById(Integer id) {
        return employeePerformanceMapper.selectById(id);
    }

    // 添加员工绩效信息
    /**
     * 新增员工绩效记录
     * @param employeePerformance 绩效记录信息
     * @return 影响行数
     */
    public int insert(EmployeePerformance employeePerformance) {
        return employeePerformanceMapper.insert(employeePerformance);
    }

    // 更新员工绩效信息
    /**
     * 更新员工绩效记录
     * @param employeePerformance 绩效记录信息
     * @return 影响行数
     */
    public int update(EmployeePerformance employeePerformance) {
        return employeePerformanceMapper.updateById(employeePerformance);
    }

    /**
     * 根据员工ID查询绩效记录
     * @param employeePerformance 包含员工ID的绩效对象
     * @return 该员工的绩效记录列表
     */
    public List<EmployeePerformance> selectByEmpId(EmployeePerformance employeePerformance) {
        return employeePerformanceMapper.selectByEmpId(employeePerformance);
    }

    /**
     * 根据考核周期ID查询绩效记录
     * @param perId 考核周期ID
     * @return 该周期的绩效记录列表
     */
    public List<EmployeePerformance> selectByPerId(Integer perId) {
        return employeePerformanceMapper.selectByPerId(perId);
    }

    // 软删除员工绩效
    /**
     * 软删除员工绩效记录
     * @param id 绩效记录ID
     * @return 影响行数
     */
    public int deleteById(Integer id) {
        return employeePerformanceMapper.deleteById(id);
    }
}
